/*
 *  Copyright 2016 Utkin Dmitry <loentar@gmail.com>
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

/*
 *  This file is part of ngrest: http://github.com/loentar/ngrest
 */

#include <iostream>
#include "CodegenParser.h"

namespace ngrest {
namespace codegen {

ParseSettings::ParseSettings():
    noServiceWarn(false)
{
}

CodegenParser::~CodegenParser()
{
}

ParseException::ParseException(const std::string& file_, int line_, const std::string& message_,
                               const std::string& sourceFile_, int sourceLine_):
    file(file_), line(line_), message(message_),
    sourceFile(sourceFile_), sourceLine(sourceLine_)
{
}

std::ostream& ParseException::operator<<(std::ostream& stream) const
{
    return stream << file << "[" << line << "]: " << message
                  << "\n While parsing " << sourceFile << "[" << sourceLine << "]\n";
}

std::string& ParseException::getMessage()
{
    return message;
}


std::ostream& operator<<(std::ostream& stream, const ParseException& parseException)
{
    return parseException.operator<<(stream);
}

}
}
